{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Data preprocessing is an umbrella term that covers an array of operations data scientists will use to get their data into a form more appropriate for what they want to do with it. For example, before performing sentiment analysis of twitter data, you may want to strip out any html tags, white spaces, expand abbreviations and split the tweets into lists of the words they contain. When analyzing spatial data you may scale it so that it is unit-independent, that is, so that your algorithm doesn't care whether the original measurements were in miles or centimeters. However, preprocessing data does not occur in a vacuum. This is just to say that preprocessing is a means to an end and there are no hard and fast rules: there are standard practices, as we shall see, and you can develop an intuition for what will work but, in the end, preprocessing is generally part of a results-oriented pipeline and its performance needs to be judged in context.\n",
    "\n",
    "In this article, I'll use the example of scaling numerical data (numerical data: data consisting of numbers, as opposed to categories/strings; scaling: using basic arithmetic to change the range of the data; more details to follow) to demonstrate the importance of considering preprocessing as part of a greater structure, the machine learning (ML) pipeline. To this end, we'll see a real-world example in which scaling can improve model performance.\n",
    "\n",
    "I'll first introduce classification problems in ML and k-Nearest Neighbors, one of the simplest algorithms used in such settings. To appreciate the importance of scaling numerical data in such a setting, I'll need to introduce measures of model performance and the concepts of training and test sets. You'll see all these concepts and practices at play with a dataset in which I attempt to classify the quality of red wine. I'll also make sure that I put preprocessing in its most useful place, near the beginning of an iterative data science pipeline. All examples herein will be in Python. If you're not familiar with Python, you can check out our DataCamp courses <a href = 'https://www.datacamp.com/'>here</a>. I will make use of the libraries <a href = 'http://pandas.pydata.org/'>pandas</a> for our dataframe needs and <a href = 'http://scikit-learn.org/stable/'>scikit-learn</a> for our machine learning needs."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### A brief introduction to classification problems in machine learning"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Classifying and labelling things in the phenomenal world is an ancient art. In the 4th century BC, Aristotle constructed a classification system of living things that was used for 2,000 years. In the modern world, classification is commonly framed as a machine learning task, in particular, a supervised learning task. The basic principle of supervised learning is straightforward: we have a bunch of data consisting of *predictor variables* and a *target variable*. The aim of **supervised learning** is to build a model that is 'good at' predicting the target variable, given the predictor variables. If the target variable consists of categories (e.g. 'click' or 'not', 'malignant' or 'benign' tumor), we call the learning task **classification**. Alternatively, if the target is a continuously varying variable (e.g. price of a house), it is a **regression** task. \n",
    "\n",
    "An illustrative example will go a long way here: consider the <a href='http://archive.ics.uci.edu/ml/datasets/Heart+Disease'>heart disease dataset</a>, in which there are 75 predictor variables, such as 'age', 'sex' and 'smoker or not' and the target variable refers to the presence of heart disease and ranges from 0 (no heart disease) to 4. Much work on this dataset has concentrated on attempts to distinguish the presence of heart disease from its absence. This is a classification task. If you were to attempt to predict the actual value (0 to 4) of the target variable, this would be a regression problem (because the target variable is ordered). I'll discuss regression in the next post. Here I'll look at one of the simplest algorithms for classification tasks, the **k-Nearest Neighbors algorithm**."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### k-Nearest Neighbors for classification in machine learning"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's say that we have some labeled data, for example, data that consists of characteristics of red wine (e.g. alcohol content, density, amount of citric acid, pH, etc...; these are the predictor variables) with target variable 'Quality' and labels 'good' & 'bad'. Then, given the characteristics of a new, unlabeled wine, the classification task is to predict its 'Quality'. When all the predictor variables are numerical (there are also ways to deal with the categorical case), we can consider each row/wine as a point in n-dimensional space and, in this case, k-Nearest Neighbors (k-NN) is a conceptually & computationally simple classification method: for each new, unlabeled wine, we calculate, for some integer k, its k nearest neighbors in the n-dimensional predictor variable space. Then we look at the labels of these k neighbors (i.e. 'good' or 'bad') & assign the label with the most hits to the new wine (e.g. if k = 5, 3 neighbors vote 'good' and 2 vote 'bad', then our model labels the new wine 'good'). Note that, here, training the model consists entirely in storing the data points: there are no parameters to fit!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### A visual description of k-Nearest Neighbors"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the image below, there's an example of k-NN in 2D: how do you classsify the data point in the middle? Well, if k=3, you would clasify it as red and, if k=5, as green. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-06-17T07:43:38.008907Z",
     "start_time": "2019-06-17T07:43:37.996428Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<img src=\"http://36.media.tumblr.com/d100eff8983aae7c5654adec4e4bb452/tumblr_inline_nlhyibOF971rnd3q0_500.png\"/>"
      ],
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Image\n",
    "Image(url= 'http://36.media.tumblr.com/d100eff8983aae7c5654adec4e4bb452/tumblr_inline_nlhyibOF971rnd3q0_500.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### k-NN implementation in Python (scikit-learn)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's now see an example of k-NN at work. To do so, we'll check out the <a href='http://archive.ics.uci.edu/ml/datasets/Wine+Quality'>wine quality dataset</a>: we'll import it into a pandas dataframe and then plot histograms of the predictor variables to get a feel for the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n76CwsBDz58/3dFhE1MPNmzcPBQUFyM/Px86dO9GnTx+sWbNGPnvm6CyaJEl279fV1WHChAn46KOP\nsH//fjz00EO47777sH379nbrPbeMO++8E3PnzkVMTAxOnTqFX375BY8//jimT5+O//73v/jiiy/s\n6tqyZQseeughV60CInKRLVu2oKqqCp999hk++eQTAMD06dNRWFiI9evX49ChQ1iwYAHmzZuHN954\nAwDwzTffYMaMGXj66adx5MgRfP7557j33nvtyj23vfnll19w6623YtSoUdizZw9WrFiBOXPmtGmr\nnLkCQJIkrFixAvv370dhYSFOnjyJu+++u1PLPGPGDNTU1OCzzz7D4cOH8frrryMmJqZTZTz55JPY\nunUrNm7ciF27diEkJARr1661W4aamhrcdddd2L59O/bs2YObbroJkyZNQllZmV1ZL730Evr164dd\nu3bJ65i6xs/TAZDvCg8Px8svvwxJknDppZciOzsbc+bMQXZ2NoCWX6e0Wm2b+XjpEhF1VX19PV5+\n+WWsWbMGEydOBAAsX74cxcXFMJvNTpdz+eWX4/LLL5dfz5o1C5988gneeecdjBs3rsP5g4KCEBIS\nArVajcjISPl9jUaDm2++GevXr8fYsWMBABs3boRGo0FaWprT8RGRe0RHR2Pt2rXy6+PHj+Ptt9/G\nwYMH5cGSLr74Yhw6dAh5eXmYNm0aTp48iZCQEEyaNAkhISEAgMTExHbrWLNmDSIjI/Hqq69CpVJh\n6NChWLZsGW699Va76Zy5hPKRRx6R/7744ovx0ksvITk5Gb/88guio6OdWuYff/wRt912G4YNGwYA\niI2NdWq+VvX19Xj11Vfx8ssv4/e//z0AYNmyZSgqKoLRaJSnO78tXbJkCd5//31s2bLF7kTAqFGj\nsGDBgk7FQI7xjB112ZVXXmmXpF111VVobGzE0aNHAQCjR4/G999/j++++87uny9f+01EnnX06FE0\nNTVhzJgxdu9fffXVnSrn7NmzmDdvHi6//HKEh4dDq9X+f/buPi6qMu8f+GdmEHB0ZBxgDCUjeciV\nEB9QEVMhNTPdhEraJFe8xQqtO6d1UysTF8vIBx4kbVM3NWvv3F2hbNuHHqA0dW9GRBFDJc0kRWAm\nEEQeZub8/vDn3I6ADDDDzIHP+/XyJXPmnPP9nuHMxXznnOu68I9//AMXLlzodI7PPvss/va3v5kL\n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\npq3PodbY8xyyJqatzyGxau2cIPuprq7G+vXrIZFIYDQaMXHiRISGhjo6LastWLAAmzdvhsFgMA/T\nLQYNDQ0oLCzEs88+6+hU2iUgIADh4eFYvnw5ZDIZ/Pz8RNMn016kUikWLlyItWvXQhAEPPjgg3Yv\nPFr7DNZd+2d39fu8q87z9PR0nDp1CjU1NUhMTERsbCyio6ORmpqKnJwceHt7Q6PR2D1mVlYWDAYD\n1q5dC+DGACoJCQl2jXlzMBzAPrebthZzy5Yt+N3vfodevXq164sJiSC2ThZERERERERkwSGDpxAR\nEREREZHtsLAjIiIiIiISORZ2REREREREIsfCjoiIiIiISORY2BEREREREYkcCzsiIiIiIiKRY2FH\nREREREQkcizsiIiIiIiIRI6FHRERERERkcixsCMiIiIiIhI5FnZEREREREQix8KOiIiIiIhI5FjY\nERERERERiRwLOyIiIiIiIpFjYUdERERERCRyLOyIiIiIiIhEjoUdERERERGRyLGwIyIiIiIiEjkW\ndtTMvffeizfffNPu2xBRz9UVbcbOnTvRq1cvi2XffPMNQkJC4OrqigcffNCu8VvLY9euXXB1dbV5\nHKlUio8++uiO60RFReGZZ56xeWyinqal9qWjbm8PneV9umbNGgQFBd1xnW+++QZSqRSXLl0yP5bJ\nZObH1LVY2JFT6dWrF3bv3u3oNIh6lGnTpuG//uu/2r3dhx9+CKnUef+MSCQSSCQSi2WJiYkICwvD\njz/+iH379jkkj9/85jf4+eefbR6nrKwMTzzxhM33S0TNtdS+tGXRokUtfqGk1Wqh0WhslZrN/P73\nv8eRI0faXO/W12HChAm4fPkyBg4cCAD47rvvIJVK8dNPP9ktT/o/zvsXmYiInJogCO3+YONoZ8+e\nxdSpUzFw4EAolcoO76epqanD27q5ucHb27vD27dGrVbb5UogEdmXp6cnevfu7eg0mpHL5VCpVO3a\nxsXFBWq12vxYjH8nxIyFXTd08OBBPPDAA+jXrx/69euHkSNH4osvvsCFCxcglUpx6NAhi/UDAwPx\nhz/8odX93XvvvXjttdewaNEieHh4wNvbG6+++mqz9RobG7F06VJ4enrirrvuwksvvQSTyWR+/ssv\nv0RUVBQ8PT2hVCoRGRmJvLw8izgmkwkLFiyAVCqFTCYzP3f06FFMnz4dCoUCarUajz/+uMW3Pz//\n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\n5W4//vhjjBgxArGxsV7lY7PZcOzYMaxYsQLf//73MW7cOERFRaG+vr7bclFRUT0GA2dmZuLw4cMY\nNWoURo8e3e2/uLg493LDhg3DAw88gFdffRU7duzA7373u25PFImod71979LS0nD06FHYbDb3axcv\nXsSJEycwYcIE9/uA7o0ib7/r3tBqtZg7dy5KSkpQVVWFY8eO4aOPPgLQ+fTw6oInBw4c8DmG0WiE\nEKLbug4dOtSj0egNnU6HESNG9ChQtXfv3n7fl5aW5i5Y08VsNkOtViMtLc392s9//nNERUXhf//3\nf/H666/jD3/4Q5/rHD9+PBobG7s9eWtsbOzWIMzIyADQWRzm6nPrqFGjPG8wUZhSq9UoKCjAG2+8\ngQ8++ADNzc3dxrulpaXhk08+cY81A4D/+7//g91ud5//rrZnzx784Ac/wAMPPID09HSMHj26R4+p\n3s61nqSlpSEmJgafffZZj+/p6NGj+xwjvGfPHtxyyy145JFHMGnSJIwZM8ZdFKVLRkYG/vSnP3md\ny/jx430+v3X9nehtuxctWoR33nkHL774Itra2vCjH/3I61yod2zYRZjPPvsMK1aswMcff4y//e1v\n2L9/P/bs2eM+MUybNg0bN27E4cOHceDAATzwwAOIiYnxuN7q6mr827/9G06dOoXf//73KCsrwxNP\nPOF1XkOGDEFCQgJeeuklnDp1Cvv378eCBQvcRV26jBo1CpWVlfjqq6/c3QtWrVqFY8eO4f7770dV\nVRU+//xzVFZW4tFHH8Xnn38OoLOQwAcffIDTp0+jtrYWf/zjHzFy5EivG55E17JRo0bhwIEDOH36\nNKxWKxwOBxYsWID4+Hjcd999OHToEA4cOIAf/ehHuOGGG5Cfn+9+H9A5oL6xsRHffPON1991TzZv\n3ozf//73OHr0KD7//HPs2LEDGo3GPVnurFmzcPz4cWzbtg2nT5/Gyy+/jLfeesvnbU9JScF3v/td\nFBUV4cSJE9i7dy8ee+wxv+fne/zxx1FaWoo333wTdXV12LJlCz788MN+3/Pkk0/i4MGDeOyxx3Di\nxAns3r0bv/jFL3D//fe7i0C98cYbePvtt7Fz507ceeed+NWvfoWHHnqoz25eM2fOxMSJE93nzerq\natx///3delaMGTMGDz74IB566CG8+eab+Oyzz3D48GG88sor2LRpk1/bTxQufvKTn+DAgQNYs2YN\n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\nSUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x112cd5a20>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "plt.style.use('ggplot')\n",
    "df = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv ' , sep = ';')\n",
    "X = df.drop('quality' , 1).values # drop target variable\n",
    "y1 = df['quality'].values\n",
    "pd.DataFrame.hist(df, figsize = [15,15]);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First notice the range of the predictor variables: 'free sulfur dioxide' ranges from 0 to ~70 and 'volatile acidity' from ~0 to ~1.2. More specifically, the former has a range 2 orders of magnitude larger than that of the latter. Any algorithm, such as k-NN, which cares about the distance between data points, may thus focus squarely and unfairly on variables with a larger range, such as 'free sulfur dioxide', a variable that may contain only noise, for all we know. This motivates scaling our data, which we'll get to soon enough.\n",
    "\n",
    "Now the target variable is a 'Quality' rating of wine and ranges from 3 to 8. For the purpose of expositional ease, let's turn it into a two-category variable consisting of 'good' (rating > 5) & 'bad' (rating <= 5). We'll also plot histograms of both formulations of the target variable to get a sense of what's going on."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\npblMOLKuXvJeV1dX5nOfzyefz5fVdln/CzzwwAN68skn9eCDD6q0tFTDw8NatGiRtm/fntX21113\nnXbu3KmioiKlUim1t7frpptu0s9//nNueAkAAGCA+++/X/fff78k6fXXX9f3v/99Pfzww/rOd76j\ncDisxsZGhcNh+f1+SZLf71dnZ6caGhoUj8c1ODioqqqqGff9QQ4455JUKqWxsTGzY8wal8ul0dFR\ns2PgMswk/zCT/GSluTiSU2ZHmDVX+2JT1uXT4sWLtXfvXvX39ysWi2nx4sWqqqqS3Z71lXsqKiqS\ndOksqGQyKenSjS2feOIJSZduePnEE0+opaXlPW94ecMNN3yApwcAAID/rbGxUcFgUKFQSGVlZQoE\nApKkyspK1dTUKBAIqKCgQG1tbbzwBwAArtkHOvfLbrdr1apVV/3NUqmUHnvsMZ05c0Z33XWXqqqq\n/uANLy//XtzwEgAA4OqtWbNGa9askSQVFxervb19xvWamprU1NSUy2gAAMDicnrhod1u11NPPaXz\n589r3759evvtt6et80FfXZvpfgNWuS7USqx0va5VXLRb55Vsh6NATov8fFllLlaaCb+/8tfV3nMA\nAAAAuWXKXa+cTqfWrFmjkydPXvMNL2c62LTKdaFWYqXrda2iMGWdd6pMJqcs8/NllblYaSb8/spP\nLpfLMje4BgAAsLrsb9h0jc6dO6fz589LkiYnJ9XX16elS5dq3bp1CofDkjTthpevvPKKpqamdPbs\n2T94w0sAAAAAAADkp5yd+TQyMqJDhw4plUopnU6rtrZWN998s1atWsUNLwEAAAAAACwqZ+XTsmXL\ntHfv3mnLueElAAAAAACAdeXssjsAAAAAAADMP5RPAAAAAAAAMAzlEwAAAAAAAAxD+QQAAAAAAADD\nUD4BAAAAAADAMJRPAAAAAAAAMAzlEwAAAAAAAAxD+QQAAAAAAADDUD4BAAAAAADAMJRPAAAAAAAA\nMAzlEwAAAAAAAAxD+QQAAAAAAADDUD4BAAAAAADAMJRPAAAAAAAAMAzlEwAAAAAAAAxD+QQAAAAA\nAADDUD4BAAAAAADAMAVmBwAAAIBxLl68qJ07d2pqakrJZFIbNmzQPffco7GxMXV0dGhoaEher1eB\nQEBOp1OS1N3drVAoJIfDodbWVlVXV5v8LAAAwFxG+QQAAGBh1113nXbu3KmioiKlUim1t7frpptu\n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\nsQ/mPwxc4EcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x117730a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y = y1 <= 5 # is the rating <= 5?\n",
    "# plot histograms of original target variable\n",
    "# and aggregated target variable\n",
    "plt.figure(figsize=(20,5));\n",
    "plt.subplot(1, 2, 1 );\n",
    "plt.hist(y1);\n",
    "plt.xlabel('original target value')\n",
    "plt.ylabel('count')\n",
    "plt.subplot(1, 2, 2);\n",
    "plt.hist(y)\n",
    "plt.xlabel('aggregated target value')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we're nearly ready to perform k-Nearest Neighbors. First off, though, if we're going to compare how our model performs with and without preprocessing, we'll need to figure out how to measure the 'goodness' of a model:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### k-Nearest Neighbors: how well does it perform?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There are a number of performance measures for classification challenges. It is of the utmost importance to realise that the choice of performance measure is deeply domain & question specific. In the case of a dataset with balanced classes (where all target values are ~ equally represented), data scientists commonly look at *accuracy* as a performance measure. In fact, as we'll see, accuracy is the default scoring method for both k-Nearest Neighbors and logistic regression in scikit-learn. So what is accuracy? It is merely the number of correct predictions divided by the total number of predictions:\n",
    "\n",
    "\n",
    "$$\\text{Accuracy}=\\frac{\\text{Number of Correct Predictions}}{\\text{Total Number of Predictions}}.$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*Note: **accuracy** can also be defined in terms of a confusion matrix and is commonly defined for binary classification problems in terms of true positives & false negatives; other common measures of model performance derivable from the confusion matrix are **precision**, the number of true positives divided by the number of true & false positives, and **recall**, the number of true positives divided by the number of true positives plus the number of false negatives; yet another measure, the **F1-score** is the harmonic mean of the precision and the recall. See <a href='http://machinelearningmastery.com/classification-accuracy-is-not-enough-more-performance-measures-you-can-use/'>machine learning mastery</a> for a nice exposition of these measures; also check out the Wikipedia entries on the <a href='https://en.wikipedia.org/wiki/Confusion_matrix'>confusion matrix</a> and the <a href='https://en.wikipedia.org/wiki/F1_score'>F1 score</a>.*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### k-Nearest Neighbors: performance in practice and the train test split"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It is all well and good to have a measure of performance such as accuracy, but if we fit the model on all of the data we have, what dataset are we going we going to report the accuracy from? Remember that we want a model that generalizes well to new data. Thus, if we train our model on a dataset *D*, reporting the accuracy of the model on the same data *D* may make it look as though it performs better than it actually does. This is known as **overfitting**. To combat this issue, data scientists will commonly train their model on a subset of the data, called the **training set** and evaluate its performance on the rest of the data, the **test set**. This is precisely what we're going to do here! A general rule of thumb is to use approximately 80% of the data for training & 20% for test. Let's now split our red wine quality data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.cross_validation import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We now build the k-NN model, make predictions on the test set and compare these predictions to the ground truth in order to get a measure of model performance:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "k-NN accuracy for test set: 0.612500\n"
     ]
    }
   ],
   "source": [
    "from sklearn import neighbors, linear_model\n",
    "knn = neighbors.KNeighborsClassifier(n_neighbors = 5)\n",
    "knn_model_1 = knn.fit(X_train, y_train)\n",
    "print('k-NN accuracy for test set: %f' % knn_model_1.score(X_test, y_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It is worth reiterating that the default scoring method for k-NN in scikit-learn is *accuracy*. An accuracy of 61% is not great but for an out of the box model without any preprocessing it's not horrible either. To check out a variety of other metrics, we can use scikit-learn's classification report also: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             precision    recall  f1-score   support\n",
      "\n",
      "      False       0.66      0.64      0.65       179\n",
      "       True       0.56      0.57      0.57       141\n",
      "\n",
      "avg / total       0.61      0.61      0.61       320\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import classification_report\n",
    "y_true, y_pred = y_test, knn_model_1.predict(X_test)\n",
    "print(classification_report(y_true, y_pred))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we're going to introduce scaling and centering, the most basic methods of preprocessing numerical data, and see if and how they effect our model performance."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### The mechanics of preprocessing: scaling and centering"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Before running a model, such as regression (predicting a continuous variable) or classification (predicting a discrete variable), on data, you almost always want to do some preprocessing. For numerical variables, it is common to either *normalize* or *standardize* your data. What do these terms mean?\n",
    "\n",
    "All *normalization* means is scaling a dataset so that its minimum is 0 and its maximum 1. To achieve this we transform each data point $x$ to\n",
    "\n",
    "\n",
    "$$x_{normalized} = \\frac{x-x_{min}}{x_{max}-x_{min}}.$$\n",
    "\n",
    "*Stardardization* is slightly different; it's job is to center the data around 0 and to scale with respect to the standard deviation:\n",
    "\n",
    "\n",
    "$$x_{standardized} = \\frac{x-\\mu}{\\sigma},$$\n",
    "\n",
    "where $\\mu$ and $\\sigma$ are the mean and standard deviation of the dataset, respectively. First note that these transformations merely change the range of the data and not the distribution. You may later wish to use any other number of transforms, such as a log transform or a Box-Cox transform, to make your data look more Gaussian (like a bell-curve). But before we go further, it is important to ask the following questions: why do we scale our data? Are there times that it is more appropriate than others? For example, is it more important in classification problems than in regression? \n",
    "\n",
    "Let's first delve into classification challenges and see how scaling affects the performance of k-Nearest Neighbors:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Preprocessing: scaling in practice"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here below I (i) scale the data, (ii) use k-Nearest Neighbors and (iii) check the model performance. I'll use scikit-learn's <a href='http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.scale.html'>scale function</a>, which standardizes all features (columns) in the array passed to it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "k-NN score for test set: 0.712500\n",
      "k-NN score for training set: 0.814699\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "      False       0.72      0.79      0.75       179\n",
      "       True       0.70      0.62      0.65       141\n",
      "\n",
      "avg / total       0.71      0.71      0.71       320\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.preprocessing import scale\n",
    "Xs = scale(X)\n",
    "from sklearn.cross_validation import train_test_split\n",
    "Xs_train, Xs_test, y_train, y_test = train_test_split(Xs, y, test_size=0.2, random_state=42)\n",
    "knn_model_2 = knn.fit(Xs_train, y_train)\n",
    "print('k-NN score for test set: %f' % knn_model_2.score(Xs_test, y_test))\n",
    "print('k-NN score for training set: %f' % knn_model_2.score(Xs_train, y_train))\n",
    "y_true, y_pred = y_test, knn_model_2.predict(Xs_test)\n",
    "print(classification_report(y_true, y_pred))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All these measures improved by 0.1, which is a 16% improvement and significant! As hinted at above, before scaling there were a number of predictor variables with ranges of different order of magnitudes, meaning that one or two of them could dominate in the context of an algorithm such as k-NN. The two main reasons for scaling your data are\n",
    "1. Your predictor variables may have significantly different ranges and, in certain situations, such as when implementing k-NN, this needs to be mitigated so that certain features do not dominate the algorithm;\n",
    "2. You want your features to be unit-independent, that is, not reliant on the scale of the measurement involved: for example, you could have a measured feature expressed in meters and I could have the same feature expressed in centimeters. If we both scale our respective data, this feature will be the same for each of us."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We have seen the essential place occupied in the data scientific pipeline by preprocessing, in its scaling and centering form, and we have done so to promote a holistic approach to the challenges of machine learning. In future articles, I hope to extend this discussion to other types of preprocessing, such as transformations of numerical data and preprocessing of categorical data, both essential aspects of any data scientists's toolkit. Before moving onto this, in the next article I will explore the role of scaling in regression approaches to classification. In particular, I'll look at logistic regression and you'll see that the result is very different to the one you just saw in the context of k-Nearest Neighbors."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "___\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the interactive window below, you can play with the data yourself. Start off by changing the variable *n_neig*, which is the number of neighbors to use in the k-NN algorithm. You can also scale the data by setting *sc = True*, if you desire. Then run the entire script to report the accuracy of the model, along with a classification report."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-06-17T14:07:46.773550Z",
     "start_time": "2019-06-17T14:07:46.286009Z"
    }
   },
   "outputs": [],
   "source": [
    "# Import packages\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn import neighbors\n",
    "from sklearn.preprocessing import scale\n",
    "from sklearn.metrics import classification_report"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-06-17T14:59:28.392540Z",
     "start_time": "2019-06-17T14:59:28.389160Z"
    }
   },
   "outputs": [],
   "source": [
    "# Set the the number of neighbors for k-NN\n",
    "n_neig = 5\n",
    "# Set sc = True if you want to scale your features\n",
    "sc = False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-06-17T15:00:46.531997Z",
     "start_time": "2019-06-17T14:59:47.267456Z"
    }
   },
   "outputs": [],
   "source": [
    "# Load data\n",
    "# http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv\n",
    "df = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv' , sep = ';')\n",
    "X = df.drop('quality' , 1).values # drop target variable"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-06-17T15:01:02.846285Z",
     "start_time": "2019-06-17T15:01:02.843245Z"
    }
   },
   "outputs": [],
   "source": [
    "# Here we scale, if desired\n",
    "if sc == True:\n",
    "    X = scale(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-06-17T15:48:58.159438Z",
     "start_time": "2019-06-17T15:48:58.155874Z"
    }
   },
   "outputs": [],
   "source": [
    "# Target value\n",
    "y1 = df['quality'].values # original target variable\n",
    "y = y1 <= 5 # new target variable: is the rating &lt;= 5?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-06-17T15:49:08.889296Z",
     "start_time": "2019-06-17T15:49:08.884119Z"
    }
   },
   "outputs": [],
   "source": [
    "# Split the data into a test set and a training set\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-06-17T15:49:19.254172Z",
     "start_time": "2019-06-17T15:49:19.232883Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "k-NN accuracy for test set: 0.612500\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "       False       0.66      0.64      0.65       179\n",
      "        True       0.56      0.57      0.57       141\n",
      "\n",
      "   micro avg       0.61      0.61      0.61       320\n",
      "   macro avg       0.61      0.61      0.61       320\n",
      "weighted avg       0.61      0.61      0.61       320\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# Train k-NN model and print performance on the test set\n",
    "knn = neighbors.KNeighborsClassifier(n_neighbors = n_neig)\n",
    "knn_model = knn.fit(X_train, y_train)\n",
    "y_true, y_pred = y_test, knn_model.predict(X_test)\n",
    "print('k-NN accuracy for test set: %f' % knn_model.score(X_test, y_test))\n",
    "print(classification_report(y_true, y_pred))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "___\n",
    "### Glossary"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Supervised learning:** The task of inferring a *target variable* from *predictor variables*. For example, inferring the *target variable* 'presence of heart disease' from *predictor variables* such as 'age', 'sex', and 'smoker status'.\n",
    "\n",
    "\n",
    "**Classification task:** A *supervised learning* task is a *classification task* if the target variable consists of categories (e.g. 'click' or 'not', 'malignant' or 'benign' tumour).\n",
    "\n",
    "**Regression task:** A *supervised learning* task is a *regression task* if the target variable is a continuously varying variable (e.g. price of a house) or an ordered categorical variable such as 'quality rating of wine'.\n",
    "\n",
    "**k-Nearest Neighbors:** An algorithm for *classification tasks*, in which a data point is assigned the label decided by a majority vote of its k nearest neighbors.\n",
    "\n",
    "**Preprocessing:** Any number of operations data scientists will use to get their data into a form more appropriate for what they want to do with it. For example, before performing sentiment analysis of twitter data, you may want to strip out any html tags, white spaces, expand abbreviations and split the tweets into lists of the words they contain.\n",
    "\n",
    "**Centering and Scaling:** These are both forms of preprocessing *numerical data*, that is, data consisting of numbers, as opposed to categories or strings, for example; *centering* a variable is subtracting the mean of the variable from each data point so that the new variable's mean is 0; *scaling* a variable is multiplying each data point by a constant in order to alter the range of the data. See the body of the article for the importance of these, along with examples.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "___"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*This article was generated from a Jupyter notebook. You can download the notebook <a href = 'https://github.com/hugobowne/machine_learning_techniques/blob/master/notes_on_ML/K-NN_and_preprocessing.ipynb'>here</a>.*"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.4"
  },
  "latex_envs": {
   "LaTeX_envs_menu_present": true,
   "autoclose": false,
   "autocomplete": true,
   "bibliofile": "biblio.bib",
   "cite_by": "apalike",
   "current_citInitial": 1,
   "eqLabelWithNumbers": true,
   "eqNumInitial": 1,
   "hotkeys": {
    "equation": "Ctrl-E",
    "itemize": "Ctrl-I"
   },
   "labels_anchors": false,
   "latex_user_defs": false,
   "report_style_numbering": false,
   "user_envs_cfg": false
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": false,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
